package com.hxzy.common.util.strategy;

import com.hxzy.controller.mobile.cart.req.CartAddReq;
import com.hxzy.controller.mobile.cart.req.MobileAddCartNumReq;

/**
 * 购物车策略算法
 */
public interface CartStorategy {

    /**
     * 添加购物车信息
     * @param req
     * @return
     */
    int cartAdd(CartAddReq req);


    /**
     * 增加购物车数量
     * @param req
     * @return
     */
    int incrementNum(MobileAddCartNumReq req);

    /**
     * 减少购物车数量
     * @param req
     * @return
     */
    int subNum(MobileAddCartNumReq req);


    /**
     * 清除指定当前用户某个商家中某一个商品的信息
     * @param req
     * @return
     */
    boolean clearMerchantIdAndProductId(MobileAddCartNumReq req);

    /**
     * 清空当前用户某个商家的购物车所有数据
     * @param merchantId
     * @return
     */
    boolean cleanCart(Long merchantId);
}
